<?php
/**
 * Criado em 04/12/2009
 * AcaoFazerInscricao.php
 */
require_once "../config/DefinitionsController.php";
require_once "../config/DefinitionsPath.php";
require_once "../util/Util.php";
$util = new Util();

if (isset($_POST["acao"]))	{

	$acao = $_POST["acao"];
	$cpf = $util->antiInjection($_POST["cpf"]);

	switch ($acao) {

		case "enviarDados":
			$inscricao = new FazerInscricaoController();

			// Seguranca: retira possivel codigo malicioso (SQL, PHP, HTML) do conteudo
			foreach ($_POST as $l => $x){
				if ($l != "codigosCampo") {
					$_POST[$l] = $util->antiInjection($x);
				}
			}


			// cria objeto com os CAMPOS FIXOS
			$candidato = new Candidato();
			$candidato->cpf = $_POST["cpf"];
			$candidato->nome = $_POST["nome"];
			$candidato->sobrenome = $_POST["sobrenome"];
			$candidato->email = $_POST["email"];

			$objVerificar = $inscricao->verificarRegistroCandidato($candidato->cpf);

			// se ja tem cadastro, atualiza dados
			if (! empty($objVerificar)) {
				$inscricao->atualizarCandidato($candidato);
			// senao
			} else {
				// salva dados na tabela Candidato
				$inscricao->salvarCandidato($candidato);
			}


			// monta array com os CAMPOS DINAMICOS
			$arrDinamico = null;
			foreach ($_POST as $i => $t){

				// se nao for nenhum dos fixos:
				if (($i != "cpf") && ($i != "nome") && ($i != "sobrenome") && ($i != "email")) {
					// se nao for o hidden
					if ($i != "codigosCampo[]") {

						// pega o name do campo e coloca as partes num array. Ex: name="text_1_100"
						// parte 0: tipo campo/ parte 1: ordem/ parte 2: codigo do campo
						$arrayNameCampo = explode("_", $i);
						// coloca no array o codigo do campo, recebendo o conteudo
						if (isset($arrayNameCampo[2])) {
							$arrDinamico[$arrayNameCampo[2]] = $t;
						}

					}
				}
			}

			// monta array com os CAMPOS DINAMICOS (arquivos anexos)
			if (isset($_FILES)) {
				foreach ($_FILES as $i => $arrayPropriedades) {

					// pega o name do campo e coloca as partes num array. Ex: name="text_1_100"
					// parte 0: tipo campo/ parte 1: ordem/ parte 2: codigo do campo
					$arrayNameCampo = explode("_", $i);
					// coloca no array o codigo do campo, recebendo o conteudo
					if (isset($arrayNameCampo[2])) {
						if($util->validarTipoArquivo($arrayPropriedades["type"], $arrayPropriedades["name"])) {

							$arrDinamico[$arrayNameCampo[2]] = $_POST["cpf"]."_".$arrayPropriedades["name"];

							//salva o anexo
							move_uploaded_file($arrayPropriedades["tmp_name"],(DIR_UPLOAD.$_POST["cpf"]."_".$arrayPropriedades["name"]));

							if ($arrayPropriedades["error"] == 1) {
								// Deu algum erro no upload do arquivo! (tamanho excede ao configurado no PHP.ini)
								$util->redirect($_POST['nmArquivo'] . ".php" . "?erro=uploadTamanho");
							}
						}
						 else {
							// Deu algum erro no upload do arquivo! (tipo nao permitido)
							$util->redirect($_POST['nmArquivo'] . ".php" . "?erro=uploadTipo");
						}

					}

				}
			}

			// se tiver campos dinamicos...
			if (sizeof($arrDinamico) > 0) {
				foreach ($arrDinamico as $codCampo => $conteudo){
					$conteudoCampo->cpf = $_POST["cpf"];
					$conteudoCampo->codCampo = $codCampo;
					$conteudoCampo->conteudo = $conteudo;

					// salva dados na tabela ConteudoCampo
					$inscricao->salvarConteudo($conteudoCampo);
				}
			}

			$util->redirect("inscricao_efetuada.php");
			break;


		case "verificarCandidato":
			$inscricao = new FazerInscricaoController();
			$resultado = $inscricao->carregarDadosCandidatoExistente($cpf);

			if ($resultado != null) {
				echo $resultado;
			}

			break;

		default:
			break;
	}

}

?>
